# Python3 字符串
# 1.字符串的创建
# 字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。
# 创建字符串很简单，只要为变量分配一个值即可
str1 = 'python'

# 2.字符串的访问
# Python 访问字符串中的值
# Python 不支持单字符类型，单字符在 Python 中也是作为一个字符串使用。
# Python 访问子字符串，可以使用方括号 [] 来截取字符串，字符串的截取的语法格式如下：变量[头下标:尾下标] 截取原则左闭右开

print(str1[1:3])
# 3.Python字符串运算符
# 下表实例变量 a 值为字符串 "Hello"，b 变量值为 "Python"：
# + 字符串连接 a + b 输出结果： HelloPython
# *	重复输出字符串 a*2 输出结果：HelloHello
# [] 通过索引获取字符串中字符 a[1] 输出结果 e
# in 成员运算符 - 如果字符串中包含给定的字符返回 True	'H' in a 输出结果 True
# not in 成员运算符 - 如果字符串中不包含给定的字符返回 True	'M' not in a 输出结果 True

# 4.Python 字符串格式化
# Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式，但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
# 在 Python 中，字符串格式化使用与 C 中 sprintf 函数一样的语法。
# %c 格式化字符及其ASCII码
# %s 格式化字符串
# %d 格式化整数
# %u 格式化无符号整型
# %o 格式化无符号八进制数
# %x 格式化无符号十六进制数
# %X 格式化无符号十六进制数（大写）
# %f 格式化浮点数字，可指定小数点后的精度
# %e 用科学计数法格式化浮点数
# %E 作用同 % e，用科学计数法格式化浮点数
# %p 用十六进制数格式化变量的地址
print("我叫 %s 今年 %d 岁!" % ('小明', 10))

# 5.Python 的字符串内建函数
# Python 的字符串常用内建函数如下：
# capitalize() 将字符串的第一个字符转换为大写
# center(width, fillchar) 返回一个指定的宽度 width 居中的字符串，fillchar 为填充的字符，默认为空格。
# count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数，如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
# endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束，如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束，如果是，返回 True,否则返回 False.
# expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格，tab 符号默认的空格数是 8 。
# find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中，如果指定范围 beg 和 end ，则检查是否包含在指定范围内，如果包含返回开始的索引值，否则返回-1
# index(str, beg=0, end=len(string)) 跟find()方法一样，只不过如果str不在字符串中会报一个异常。
# isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True，否则返回 False
# isalpha() 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
# isdigit() 如果字符串只包含数字则返回 True 否则返回 False..
# islower() 如果字符串中包含至少一个区分大小写的字符，并且所有这些(区分大小写的)字符都是小写，则返回 True，否则返回 False
# isnumeric() 如果字符串中只包含数字字符，则返回 True，否则返回 False
# isspace() 如果字符串中只包含空白，则返回 True，否则返回 False.
# istitle() 如果字符串是标题化的(见 title())则返回 True，否则返回 False
# isupper() 如果字符串中包含至少一个区分大小写的字符，并且所有这些(区分大小写的)字符都是大写，则返回 True，否则返回 False
# join(seq) 以指定字符串作为分隔符，将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
# len(string) 返回字符串长度
# ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串，fillchar 默认为空格。
# lower() 转换字符串中所有大写字符为小写.
# lstrip() 截掉字符串左边的空格或指定字符。
# maketrans() 创建字符映射的转换表，对于接受两个参数的最简单的调用方式，第一个参数是字符串，表示需要转换的字符，第二个参数也是字符串表示转换的目标。
# max(str) 返回字符串 str 中最大的字母。
# min(str) 返回字符串 str 中最小的字母。
# replace(old, new [, max]) 把 将字符串中的 old 替换成 new,如果 max 指定，则替换不超过 max 次。
# rfind(str, beg=0,end=len(string)) 类似于 find()函数，不过是从右边开始查找.
# rindex( str, beg=0, end=len(string)) 类似于 index()，不过是从右边开始.
# rjust(width,[, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格）填充至长度 width 的新字符串
# rstrip() 删除字符串末尾的空格或指定字符。
# split(str="", num=string.count(str)) 以 str 为分隔符截取字符串，如果 num 有指定值，则仅截取 num+1 个子字符串
# splitlines([keepends]) 按照行('\r', '\r\n', \n')分隔，返回一个包含各行作为元素的列表，如果参数 keepends 为 False，不包含换行符，如果为 True，则保留换行符。
# startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头，是则返回 True，否则返回 False。如果beg 和 end 指定值，则在指定范围内检查。
# strip([chars]) 在字符串上执行 lstrip()和 rstrip()
# swapcase() 将字符串中大写转换为小写，小写转换为大写
# title() 返回"标题化"的字符串,就是说所有单词都是以大写开始，其余字母均为小写(见 istitle())
# translate(table, deletechars="") 根据 table 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
# upper() 转换字符串中的小写字母为大写
# zfill (width) 返回长度为 width 的字符串，原字符串右对齐，前面填充0
# isdecimal() 检查字符串是否只包含十进制字符，如果是返回 true，否则返回 false
